//
//  Heap.h
//  堆排序的初步实现
//
//  Created by Yan Zihao on 2024/11/21.
//
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <stdbool.h>
typedef int HPDataType;
typedef struct Heap
{
    HPDataType* _a;
    int _size;
    int _capacity;
}Heap;

void HeapInit(Heap* php);
// 堆的销毁
void HeapDestory(Heap* hp);
// 堆的插入
void HeapPush(Heap* hp, HPDataType x);
void Swap(HPDataType* a, HPDataType* b);
void AdjustUp(HPDataType* a, HPDataType child);
// 堆的删除
void HeapPop(Heap* hp);
void AdjustDown(HPDataType*a ,HPDataType parent, int n);
// 取堆顶的数据
HPDataType HeapTop(Heap* hp);
// 堆的数据个数
int HeapSize(Heap* hp);
// 堆的判空
int HeapEmpty(Heap* hp);
